Uau, gostei!
Isso abre algumas possibilidades no RPG!
- Fórum
- OTServ
- Recursos
- Scripting
- CreatureScripts e Movements
- [TFS 0.4] Critical System por vocação
[TFS 0.4] Critical System por vocação
Por Leoxtibia, 03 de ago. de 2017 em CreatureScripts e Movements
info
Grupo: Barão
Registrado: 06/03/17
Posts: 206
Reputação: +52
Gênero: Masculino

Em 03/08/2017 at 22:09, Leoxtibia disse:Resolvi colocar o sistema de critical hit aqui à disposição de todos. Percebi que o fórum não tinha nenhum atualizado ou sem erros, então pode ser útil para outras pessoas. A ideia foi do @fefuxd e foi testado no tfs 0.4. Lembrando que funciona somente para critical hits em players.
Funcionamento: Basicamente, o sistema dará chances diferentes para cada vocação para que aconteça o Critical Hit.
Em creaturescripts/scripts:
CriticalVocs.lua
local CriticalHitMsg, hit = true, --- true (false) para mostrar (ou não) o valor do hit no Default { -- porcentagem de aumento do hit, 1.2 = 20%, 2.0 = 100%, 1.4 = 40% e aí vai... [1] = {percent = 2.0}, [2] = {percent = 1.5}, [3] = {percent = 2.0}, [4] = {percent = 1.5}, [5] = {percent = 2.0}, [6] = {percent = 1.5}, [7] = {percent = 1.5}, [8] = {percent = 2.0} } local protect = {} function onStatsChange(cid, attacker, type, combat, value) if isPlayer(attacker) and (not (attacker == cid)) and (type == STATSCHANGE_HEALTHLOSS) and isPlayer(cid) and value >=1 then if (getPlayerStorageValue(attacker, 19830)) >= math.random (0,100) then if protect[attacker] then protect[attacker] = nil return true end critical = math.ceil(2*value*hit[getPlayerVocation(attacker)].percent) protect[attacker] = true doTargetCombatHealth(attacker, cid, combat, -critical, -critical, CONST_ME_NONE) if CriticalHitMsg then doPlayerSendTextMessage(attacker, MESSAGE_STATUS_CONSOLE_ORANGE, "CRITICAL HIT: "..math.floor((critical/2))) end doSendAnimatedText(getCreaturePos(attacker), "CRITICAL!!", COLOR_DARKRED) return false end end return true end
No login.lua:
local chanceTable = { -- chance [0 a 100%] para critical hit [1] = {chance = 20}, [2] = {chance = 30}, [3] = {chance = 50}, [4] = {chance = 40}, [5] = {chance = 20}, [6] = {chance = 30}, [7] = {chance = 50}, [8] = {chance = 40} } registerCreatureEvent(cid, "CriticalHit") setPlayerStorageValue(cid, 19830, chanceTable[getPlayerVocation(cid)].chance)
No creaturescripts.xml, adicione a tag:
<event type="statschange" name="CriticalHit" event="script" value="CriticalVocs.lua"/>
Lembrando que geralmente: (se é quem alguém não sabe)
[1] - Sorcerer ; [5] - Master Sorcerer
[2] - Druid; [6] - Elder Druid
[3] - Paladin; [7] - Royal Paladin
[4] - Knight; [8] - Elite Knight
Espero ter ajudado.
@Leoxtibia o sistema rodou 95% muito bom.. a unica coisa que eu notei de errado é que quando o mago esta com "utamo vita" o critico não funciona
4 horas atrás, fefuxd disse:
@Leoxtibia o sistema rodou 95% muito bom.. a unica coisa que eu notei de errado é que quando o mago esta com "utamo vita" o critico não funciona
@fefuxd Realmente, já editei.
@Leoxtibia SHOW!
@Leoxtibia aew man encontrei outro bug.. na função login.lua .. quando eu tento logar no Account Manager da o erro da imagem abaixo.
dai fiz o teste e tirei a função que vc tinha colocado no login.lua e o problema parou de acontecer..
ta faltando alguma coisa sera?
estou anexando também parte do meu login.lua (linha 83) conforme erro no console
@Leoxtibia esquece.. consegui achar o erro... bastou o minimo de vontade pra entender o código e pesquisar no google kkk =D ..
como o Account Manager é sem vocação (0) .. faltou colocar a linha dele ali nas chances e o problema foi resolvido
[0] = {chance = 20},
atualiza seu código ai para o pessoal que for usar não passar por isso também
Editado Agosto 6 por fefuxd
Existe alguma forma de evitar overflow? estou usando OTX 2 e as vezes da uns hits absurdos com mensagem de overflow no console.
Em 05/08/2017 em 13:15, Leoxtibia disse:
@fefuxd Realmente, já editei.
quando entra com adm da error:
Editado Novembro 26 por leozinpbb
1










info
Grupo: Visconde
Registrado: 22/06/08
Posts: 489
Reputação: +137
Gênero: Masculino
Resolvi colocar o sistema de critical hit aqui à disposição de todos. Percebi que o fórum não tinha nenhum atualizado ou sem erros, então pode ser útil para outras pessoas. A ideia foi do @fefuxd e foi testado no tfs 0.4. Lembrando que funciona somente para critical hits em players.
Funcionamento: Basicamente, o sistema dará chances diferentes para cada vocação para que aconteça o Critical Hit.
Em creaturescripts/scripts:
CriticalVocs.lua
No login.lua:
No creaturescripts.xml, adicione a tag:
<event type="statschange" name="CriticalHit" event="script" value="CriticalVocs.lua"/>
Lembrando que geralmente: (se é quem alguém não sabe)
[1] - Sorcerer ; [5] - Master Sorcerer
[2] - Druid; [6] - Elder Druid
[3] - Paladin; [7] - Royal Paladin
[4] - Knight; [8] - Elite Knight
Espero ter ajudado.
Editado Agosto 6 por Leoxtibia